library(ggplot2)
library(readr)
chic <- read_csv("ggplot2/ggModify/chicago-nmmaps.csv")

# 1. plotly
# http://poly.ly是一个创建在线、交互式图形和web应用程序的工具。
# plotly包可以让你直接从ggplot2图中创建这些主题，工作流程非常简单，可以在r中完成。
# 然而，你的一些主题（theme）设置可能会被更改，之后需要手动修改。
# 不太好的是，创建多面版图面（facet）可能不太容易。
g <- ggplot(chic, aes(date, temp)) +
  geom_line(color = "grey") +
  geom_point(aes(color = season)) +
  scale_color_brewer(palette = "Dark2", guide = "none") +
  labs(x = NULL, y = "Temperature (°F)") +
  theme_bw()

library(plotly)

ggplotly(g)

# 2. ggiraph和ggplot2
# ggiraph是一个R包，允许你创建动态的ggplot2图形。
# 这允许你向图形添加工具提示、动画和JavaScript动作。
# 当在Shiny应用程序中使用时，该包还允许选择图形元素：
library(ggiraph)

g <- ggplot(chic, aes(date, temp)) +
  geom_line(color = "grey") +
  geom_point_interactive(
    aes(color = season, tooltip = season, data_id = season)
  ) +
  scale_color_brewer(palette = "Dark2", guide = "none") +
  labs(x = NULL, y = "Temperature (°F)") +
  theme_bw()

girafe(ggobj = g)

# 3. Highcharts
# Apache ECharts是一个免费的、功能强大的图表和可视化库，
# 提供了一种简单的方法来构建直观的、交互式的、高度可定制的图表。
# 尽管它是用纯JavaScript编写的，但可以通过echarts4r库在R中使用：
library(highcharter)

hchart(chic, "scatter", hcaes(x = date, y = temp, group = season))
